package com.nf.sms.controller;

import com.nf.sms.dao.UserDao;
import com.nf.sms.dao.impl.UserDaoImpl;
import com.nf.sms.entity.User;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;

import java.io.IOException;

/**
 * 实现用户登录
 *
 * @author ZQX
 * @date 2024-10-10
 */
@WebServlet("/login.do")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 第一：获取表单中的数据
        String name = req.getParameter("uname");
        String pass = req.getParameter("upass");

        // 第二：实例化 Dao 对象
        UserDao userDao = new UserDaoImpl();

        // 第三：调用 Dao对象中的 selectByName
        User user = userDao.selectByName(name);

        // 第三：逻辑判断，是否存在用户
        String path = "error.jsp" ;

        if (user == null) {
            req.setAttribute("msg","此帐号未注册，点击连接注册！");
            req.getRequestDispatcher(path).forward(req,resp);
            return;
        }

        if (!pass.equals(user.getPassword().trim())) {
            req.setAttribute("msg","对不起，您的帐号或密码错误！");
            // 注意：请求作用中存储的数据必须通过“转发”，才可以传递到 JSP 页面中
            req.getRequestDispatcher(path).forward(req,resp);
            return;
        }

        HttpSession session = req.getSession();
        session.setAttribute("user",user);
        // 注意：会话作用域中存储的数据，可以使用转发跳转页面，也可以使用重定向跳转页面
        resp.sendRedirect("welcome.jsp");
    }
}
